/*
 * PriorityQueue.java
 *
 * Version:
 *  $Id: PriorityQueue.java 2 2011-03-29 07:21:11Z jhaberstro $
 *
 * Revisions:
 *  $Log$
 *
 */

/**
 * Interface for a generic priority queue.  Does not specify whether
 * small or large priority values are "high" priority.
 *
 * @author zjb
 * @author Trudy Howles    tmh@cs.rit.edu
 */
public interface PriorityQueue<T extends Comparable<T> > {

	/**
	 * Is there anything in the queue?
	 * @return true if the queue is empty; otherwise return false
	 */
	public boolean isEmpty ();

	/**
	 * Add an item to the queue (at the appropriate location)
	 * @param toInsert Item to be added
	 */
	public void enqueue (T toInsert);

	/**
	 * Removes and returns the item at the front of the queue.
	 * @return the removed element
	 */
	public T dequeue ();

}

